set セットの定義と要素のアクセス・応用

ソースコード
#coding:utf-8
#set セット

#setの定義
#セットにある要素はランダム的な順序に現れる。
#重複な要素duplicatesが許容されない。
#以下のように書かれでも、定義された結果は変わる。
a = {"apple","banana","kiwi","strawberry","apple"}
print(type(a),a)

#要素のアクセス
for x in a:
    print(x)

#セットが定義されたら要素の変更ができない。

#要素の追加
b={22,34,11,76}
b.add(5)
print(b)

#セットの削除 a.clear()

#要素の削除
#存在しない要素の削除はエラーメッセージがでる
a.remove("apple")
print(a)

#要素の削除
#存在しない要素の削除はエラーメッセージが出ない
b.discard(76)
print(b)

#join sets by union
c = a.union(b)
print(c)

s1 = {"a","b","c"}
s2 ={1,2,3}
s3 = s1 | s2
print(s3)

#set methods
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
#xにあるyにない要素
z = x.difference(y)
#z = x-y
print(z)

#xから両方存在する要素を削除する
#x -= y
x.difference_update(y)
print(x,y)


#かつ:両方存在する要素
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
#z = x&y
z = x.intersection(y)
print(z)

#xから共有要素以外を削除する
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
#x &=y
x.intersection_update(y)
print(x,y)

#部分集合の判別
x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"}
# x <= y
z = x.issubset(y) 
print(z)

# 部分集合の判別
x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
# x >= y
z = x.issuperset(y)

print(z)